
#ifndef		__SHIP_H
#define		__SHIP_H

#include	"Object.h"
#include	"Weapon.h"

#define		SHIP_STILL			0
#define		SHIP_FORWARD		1
#define		SHIP_BACKWARD		2
#define		SHIP_LEFT			4
#define		SHIP_RIGHT			8

class Ship : public Object {

	protected:
		int shipState;
		int shipGraph;
		
		SDL_Rect collisionRect;

		Weapon weapon;

		enum shipsSpeed {
			SHIP_1_SPEED = 8
		} shipSpeed;

		float speedX_multiplier;
		float speedY_multiplier;

		int shipHealth;
		int shipArmor;

	public:
		Ship();

		enum shipTypes {
			SHIP_1
		} shipType;

		bool init(char* shipImage, shipTypes st);

		void loop();
		void render(SDL_Surface*);
		void cleanup();

		void setStill();
		void setForward();
		void setBackward();
		void setLeft();
		void setRight();
		void unsetForward();
		void unsetBackward();
		void unsetLeft();
		void unsetRight();

		Weapon* getWeapon();

		SDL_Rect getColRect();

		void takeShot(Projectile::projectiles);
		void takeDamage(int);

		int getShipHealth(){ return shipHealth; }

};

#endif
